package com.ktjy.mapper.role;

import com.ktjy.pojo.SysRole;
import org.apache.ibatis.annotations.Param;

import java.util.List;

public interface SysRoleMapper {
    /**
     * 新增操作
     * @param role 实体类
     * @return 返回影响行数
     */
    public int insert(SysRole role);

    /**
     * 修改操作
     * @param role 实体类
     * @return 返回影响行数
     */
    public int update(SysRole role);

    /**
     * 删除操作
     * @param id 要删除的id
     * @return 返回影响行数
     */
    public int delete(Integer id);

    /**
     * 判断要删除的角色ID是否有用户信息存在
     * @return 返回影响行数
     */
    public List<SysRole> selectIdIsNull(@Param("id") Integer id);

    /**
     * 有用户信息存在，删除该角色下的用户信息
     * @param roleId 角色ID
     * @return 返回影响行数
     */
    public int deleteRold(@Param("roleId") Integer roleId);

    /**
     * 根据角色名称模糊查询角色信息列表
     * @param roleName 角色名称
     * @return 返回相关数据
     */
    public List<SysRole> selectRoleName(@Param("roleName") String roleName);

    /**
     * 使用动态SQL根据角色id修改角色信息操作
     * @param sysRole
     * @return
     */
    public int updateId(SysRole sysRole);

    /**
     * 根据角色名称模糊分页查询
     * @param pageBegin
     * @param pageSize
     * @return
     */
    public List<SysRole> selectPageList(@Param("pageBegin") Integer pageBegin,@Param("pageSize") Integer pageSize,@Param("roleName") String roleName);

    /**
     * 第五章实战1-查询：角色展示信息包括角色编码、名称、创建时间
     * @return
     */
    public List<SysRole> selectCodeNameTime();

    /**
     * 第五章实战1-新增：新增角色编码、角色名称
     * @return
     */
    public int insertCodeName(SysRole sysRole);

    /**
     * 第五章实战1-修改：修改角色名称，角色编码不可修改
     * @param sysRole
     * @return
     */
    public int updateName(SysRole sysRole);

    /**
     * 第五章实战1-删除：根据角色ID删除相关列表
     * @param id
     * @return
     */
    public int deleteId(Integer id);
}
